SQL Server If Else语句

您所在的位置:网站首页 if if语句 SQL Server If Else语句

SQL Server If Else语句

2023-03-29 20:37| 来源: 网络整理| 查看: 265

在本教程中,将学习SQL Server IF...ELSE语句来控制程序的流程。

IF...ELSE语句是一个控制流语句,用于根据指定的条件执行或跳过语句块。

IF语句

以下是IF语句的语法:

IF boolean_expression BEGIN { statement_block } END

在此语法中,如果Boolean_expression的计算结果为TRUE,则执行BEGIN...END块中的statement_block。 否则,将跳过statement_block,并将程序的控制权传递给END关键字之后的语句。

请注意,如果布尔表达式包含SELECT语句,则必须将SELECT语句括在括号中。

以下示例首先从示例数据库中的sales.order_items表中获取销售额。 然后,如果销售额大于100万,它将打印出一条消息。

BEGIN DECLARE @sales INT; SELECT @sales = SUM(list_price * quantity) FROM sales.order_items i INNER JOIN sales.orders o ON o.order_id = i.order_id WHERE YEAR(order_date) = 2018; SELECT @sales; IF @sales > 1000000 BEGIN PRINT 'Great! The sales amount in 2018 is greater than 1,000,000'; END END

执行上面代码块,得到以下输出结果:

Great! The sales amount in 2018 is greater than 1,000,000 IF ELSE声明

当IF子句中的条件求值为FALSE时,并且想要执行另一个语句块时,可以使用ELSE子句。

以下说明IF ELSE语句:

IF Boolean_expression BEGIN -- 当布尔表达式为TRUE时,将执行此语句块 END ELSE BEGIN -- 当布尔表达式为FALSE时,将执行此语句块 END

每个IF语句都有一个条件。 如果条件的计算结果为TRUE,则执行IF子句中的语句块。 如果条件为FALSE,则执行ELSE子句中的代码块。

请参阅以下示例:

BEGIN DECLARE @sales INT; SELECT @sales = SUM(list_price * quantity) FROM sales.order_items i INNER JOIN sales.orders o ON o.order_id = i.order_id WHERE YEAR(order_date) = 2017; SELECT @sales; IF @sales > 10000000 BEGIN PRINT 'Great! The sales amount in 2018 is greater than 10,000,000'; END ELSE BEGIN PRINT 'Sales amount in 2017 did not reach 10,000,000'; END END

在此示例中,获取2017年的销售额。在IF子句中检查销售额是否大于1000万。 由于销售额小于该值,因此ELSE子句中的语句块将执行。

以下显示输出:

Sales amount did not reach 10,000,000 嵌套IF…ELSE语句

可以在一个IF...ELSE语句中嵌套另一个IF...ELSE语句。 请参阅以下示例:

BEGIN DECLARE @x INT = 10, @y INT = 20; IF (@x > 0) BEGIN IF (@x < @y) PRINT 'x > 0 and x < y'; ELSE PRINT 'x > 0 and x >= y'; END END

不将IF语句嵌套在另一个IF语句中是一个好习惯,因为它会使代码难以阅读并且难以维护。

在本教程中,学习了如何使用SQL Server IF...ELSE语句来控制代码执行流程。

  

上一篇: SQL Server存储过程 下一篇: SQL Server用户定义函数


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3